// websocket_client.h
#ifndef WEBSOCKET_CLIENT_H
#define WEBSOCKET_CLIENT_H

#include <stddef.h>
#include <string>

// 回调函数类型定义，与之前保持一致
typedef void (*ws_message_callback_t)(const char* message, int len);

/**
 * @brief 启动 WebSocket 客户端并连接到服务器。
 * @param url 服务器的 WebSocket URL (例如 "ws://192.168.1.10:8081/ws/psdk-client-01")。
 * @param cb 收到服务器消息时的回调函数。
 * @note 此函数会阻塞，直到客户端停止。建议在单独的线程中运行。
 */
void websocket_client_start(const std::string& url, ws_message_callback_t cb);

/**
 * @brief 停止 WebSocket 客户端。
 */
void websocket_client_stop();

/**
 * @brief 向服务器发送消息。
 * @param message 要发送的消息内容。
 * @param len 消息长度。
 * @return 如果成功将消息放入发送队列，则返回 true。
 */
bool websocket_client_send(const char* message, size_t len);

#endif // WEBSOCKET_CLIENT_H